home *** CD-ROM | disk | FTP | other *** search
- {
- 12 Jan 96 17:12, Mark Tassin wrote to All:
- MT> Can anybody help me find a Documented JAM message base unit for
- MT> TP 7.0? The one in JAMAPI would suffice except that all of the
- MT> functions that you can perform with it are undocumented, thus I
- MT> have to hunt through a slew function calls guessing what values I
- MT> should pass to them... RADU comes with the ability to post to
- MT> Hudson Message bases, but does not claim to support JAM, can
- MT> anybody point me to something that will let me post messages to
- MT> the JAM message base or am I screwed?
-
-
- MKSM106.LZH 226200 12-22-94 MK Source for Msg Access v1.06 - Mark May's
- Pascal OOP source code to access Squish,
- Jam, Hudson, *.Msg, and Ezycom message
- bases. Great for developing BBS utilities.
- (FW)
-
- Get the above archive,and here is
- a generic reader that I put together using Mark's units/source...
-
-
- (* Generic Message Reader by Martin Woods 1:351/233.1 *)
- (* To use this you need MKSM106.LZH , Mark May's OOP library *)
- (* which should be availible just about anywhere *)
- (* This program will read the following: *)
- (* HUDSON,SQUISH,*.MSG,EZY and JAM *)
- (* thanks to Mark May for writing a great Library! *)
-
- Program Reader;
- {$M 16384, 0, 655360}
- {$I MKB.Def}
-
- {$X+}
-
- Uses Crt,MKMsgAbs, MKOpen, MKDos, MKstring;
-
- Var
- MsgOut: AbsMsgPtr;
- TmpStr: String;
- AreaId: String;
- ch:char;
- a,b: integer;
- Const
- StLen = 78;
-
- Begin
- If (ParamCount < 1) or (ParamStr(1) = '/?') Then
- Begin
- textattr:=$07;
- clrscr;
- writeln;
- textcolor(10);
- writeln(' Generic READER version 01.0 by Martin Woods,June 1995');
- writeln;
- textcolor(11);
- WriteLn(' Proper syntax is:');
- WriteLn(' READER MsgAreaId');
- WriteLn;
- WriteLn(' Squish MsgAreaId Example = SC:\Max\Msg\Muffin');
- WriteLn(' Hudson MsgAreaId Example = H042C:\RA\MsgBase');
- WriteLn(' *.Msg MsgAreaId Example = FC:\Mail');
- WriteLn(' Ezy MsgAreaId Example = E0001C:\Ezy\MsgBase');
- WriteLn(' Jam MsgAreaId Example = JC:\Msg\General');
- Halt(1);
- End;
- AreaId := Upper(ParamStr(1));
-
- If Not OpenMsgArea(MsgOut, AreaId) Then
- Begin
- WriteLn('Unable to open message base');
- Halt(4);
- End;
- textattr:=$07;
- clrscr;
- gotoxy(10,8);
- textcolor(10);
- write('Generic READER version 01.0 by Martin Woods,June 1995 '+#13);
- textcolor(7);
- Delay(1500); {opening screen here}
-
- MsgOut^.SeekFirst(1);
- While MsgOut^.SeekFound Do
- Begin
- window(1,1,80,25);
- textbackground(0);
- clrscr;
- textcolor(15);
- for a:=1 to 80 do write('─'); { header starts here }
- textcolor(2);
- MsgOut^.MsgStartUp;
- WriteLn(MsgOut^.GetMsgNum);
- Write('Message Number: ' + Long2Str(MsgOut^.GetMsgNum));
- If MsgOut^.IsPriv Then
- Write(' (Priv)');
- If MsgOut^.IsRcvd Then
- Write(' (Rcvd)');
- WriteLn;
- Write('From: ' + PadRight(MsgOut^.GetFrom,' ',45));
- Write('Date: ');
- WriteLn(ReformatDate(MsgOut^.GetDate, 'MM/DD/YY')
- + ' ' + MsgOut^.GetTime);
- WriteLn('To: ' + MsgOut^.GetTo);
- Write('Subj: ');
- WriteLn(MsgOut^.GetSubj);
- textcolor(15);
- for a:=1 to 80 do write('─'); { header ends here }
- window(1,wherey,80,25); {make a window to scroll message}
- textcolor(7);
- textbackground(0);
- clrscr;
- WriteLn;
- MsgOut^.MsgTxtStartUp;
- repeat
-
- TmpStr := MsgOut^.GetString(StLen);
- WriteLn(TmpStr);
- TmpStr := MsgOut^.GetString(StLen);
- if keypressed then
- begin
- ch := readkey;
- if ch = #27 then halt;
- end;
- if ch = #13 then
- begin
- WriteLn(TmpStr);
- End;
- if wherey > 15 then
- begin
- textcolor(14);
- textbackground(1);
- writeln;
- writeln;
- write(' Esc to Quit - Press enter to Continue: '); {status line}
- clreol;
- textattr:=$07;
- ch := readkey;
- if ch = #27 then halt;
- clrscr;
- textcolor(7);
- end;
- until MsgOut^.EOM or (ioresult > 0);
- textcolor(14);
- textbackground(1);
- gotoxy(1,18); {this is funky,any ideas how to optimize?}
- write(' Esc to Quit - Press enter to Continue: End
- ofMsg: ');clreol; {got word wrapped here}
- ch := readkey;
- if ch = #27 then halt;
- clrscr;
- If Length(TmpStr) > 0 Then
- WriteLn(TmpStr);
- If IoResult <> 0 Then;
- MsgOut^.SeekNext;
- End;
- If Not CloseMsgArea(MsgOut) Then;
- End.
-